Systems, Methods and Computer Products for Pooling of Wireless Collection Bandwidth

ABSTRACT

Systems, methods and computer products for pooling of wireless collection bandwidth are provided. Exemplary embodiments include a bandwidth management method, in a wireless device, the method, including querying for additional wireless devices within a communication range of the wireless device, the wireless device and additional wireless devices being in communication with a network having downloadable content, initiating communication between the wireless device and the additional wireless devices, establishing an ad-hoc network among the combination of the wireless device and the additional devices, establishing communication between the combined wireless device and additional devices as the ad-hoc network, and the network having the downloadable content and requesting the downloadable content from the network to the wireless device, wherein the downloadable content is transferred over a bandwidth collectively pooled among individual bandwidths of the wireless device and the additional wireless devices.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/011,585, filed Jan. 21, 2011, and titled “Systems, Methods andComputer Products for Pooling of Wireless Collection Bandwidth,” whichis a continuation of U.S. patent application Ser. No. 11/837,927, nowU.S. Pat. No. 7,894,470, filed Aug. 13, 2007, and titled “Systems,Methods and Computer Products for Pooling of Wireless CollectionBandwidth,” the entire contents of each of which are incorporated byreference herein.

BACKGROUND

Exemplary embodiments relate generally to wireless phones, and moreparticularly, to systems, methods, and computer products for pooling ofwireless collection bandwidth.

Wireless phones are becoming more and more sophisticated and capable ofservices beyond just voice. Internet access, gaming and even video arenow possible on small portable devices. Also, wireless phones whichtraditionally use cell service such as CMDA, GSM, etc. are also capableof using alternative networks such as Wi-Fi or WiMax when they areavailable and are capable of switching back and forth betweentraditional and alternative networks. Unfortunately, current bandwidthaccess prohibits optimal performance of many of the newer services, suchas video.

Mesh networking is a way to route data, voice and instructions betweennodes. Mesh networking allows for continuous connections andreconfiguration around broken or blocked paths by “hopping” from node tonode until the destination is reached. A mesh network whose nodes areall connected to each other is a fully connected network. Meshnetworking is a subclass of mobile ad hoc networking (MANET). A MANET isa kind of wireless ad-hoc network and is a self-configuring network ofmobile routers (and associated hosts) connected by wireless links—theunion of which forms an arbitrary topology. The routers are free to moverandomly and organize themselves arbitrarily; thus, the network'swireless topology may change rapidly and unpredictably. Such a networkmay operate in a standalone fashion, or may be connected to a largernetwork such as the Internet.

As discussed above, current bandwidth access prohibits optimalperformance of many newer services such as downloading video content.There exists a need to improve access to bandwidth to provide enhanceddownloading services to wireless devices such as cellular telephones.

BRIEF SUMMARY

Exemplary embodiments include a bandwidth management method, in awireless device, the method, including querying for additional wirelessdevices within a communication range of the wireless device, thewireless device and additional wireless devices being in communicationwith a network having downloadable content, initiating communicationbetween the wireless device and the additional wireless devices,establishing an ad-hoc network among the combination of the wirelessdevice and the additional devices, establishing communication betweenthe combined wireless device and additional devices as the ad-hocnetwork, and the network having the downloadable content and requestingthe downloadable content from the network to the wireless device,wherein the downloadable content is transferred over a bandwidthcollectively pooled among individual bandwidths of the wireless deviceand the additional wireless devices.

Additional exemplary embodiments include a system for managingbandwidth, the system including a wireless device and a collectivebandwidth pooling application residing on the device, the collectivebandwidth pooling application having instructions to monitor foradditional wireless devices having bandwidth for bandwidth pooling withthe wireless device.

Further exemplary embodiments include a computer-readable medium havingcomputer-executable instructions for performing a bandwidth managementmethod including querying for additional wireless devices within acommunication range of a wireless device, the wireless device andadditional wireless devices being in communication with a network havingdownloadable content, initiating communication between the wirelessdevice and the additional wireless devices, establishing an ad-hocnetwork among the combination of the wireless device and the additionaldevices, establishing communication between the combined wireless deviceand additional devices as the ad-hoc network, and the network having thedownloadable content and requesting the downloadable content from thenetwork to the wireless device, wherein the downloadable content istransferred over a bandwidth collectively pooled among individualbandwidths of the wireless device and the additional wireless devices.

Other systems, methods, and/or computer program products according toembodiments will be or become apparent to one with skill in the art uponreview of the following drawings and detailed description. It isintended that all such additional systems, methods, and/or computerprogram products be included within this description, be within thescope of the exemplary embodiments, and be protected by the accompanyingclaims.

BRIEF DESCRIPTION OF DRAWINGS

Referring now to the drawings wherein like elements are numbered alikein the several FIGURES:

FIG. 1 illustrates a system for pooling of wireless collection bandwidthin accordance with exemplary embodiments;

FIG. 2 depicts a first wireless device for providing pooling of wirelesscollection bandwidth in exemplary embodiments; and

FIG. 3 illustrates a method for pooling of wireless collection bandwidthin accordance with exemplary embodiments.

The detailed description explains the exemplary embodiments, togetherwith advantages and features, by way of example with reference to thedrawings.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Exemplary embodiments include systems and methods that address bandwidthconstraints by pooling data access channels of multiple accessiblewireless devices using available data links, and pooling the data linksof the multiple devices together via an ad-hoc network, such as an adhoc WLAN. For example, if several wireless devices are within proximityof each other and one user wants to access a large download, the user'swireless device requiring access to a large download can link to theother wireless devices within proximity via a connection, such as aWi-Fi connection, and utilize the collective bandwidth of the group ofwireless devices to access the download. The effective bandwidth is thengreater than any individual device. This functionality is particularlyuseful for areas where broadband data access is not available. Thewireless devices could alternatively network using IMS, Bluetooth,Wi-Max or other wireless standards.

FIG. 1 illustrates a system 100 for pooling of wireless collectionbandwidth in exemplary embodiments. In general, system 100 includes afirst wireless device 105 having an associated bandwidth that can beimplemented to download content from a network 110. In exemplaryembodiments, the first wireless device 105 can be a cellular telephone(e.g., a mobile phone, 3G cell phone, Wi-Fi phone, Wi-Max phone), apersonal computer, a laptop computer, a portable computing device (e.g.,personal digital assistant), a digital music player (e.g., MP3 player),etc.

The network 110 can be an IP-based network for communication between acontent services provider server 120 and clients using communicationdevices such as but not limited to the first wireless device 105. Thenetwork 110 can be implemented to transmit content from the contentservices provider server 120 to clients having a wireless device, suchas the first wireless device 105 via a broadband connection, for whichincreased bandwidth may be necessary. In exemplary embodiments, network110 can be a managed IP network administered by a service provider,which can control bandwidth and quality of service for downloads, but asdiscussed, may only provide limited bandwidth for a device such as thefirst wireless device 105. However, as discussed below, the serviceprovider may offer pooling of wireless collection bandwidth services.Network 110 can also be implemented in a wireless fashion, e.g., usingwireless protocols and technologies, such as Wi-Fi, Wi-Max, etc. Network110 can also be a cellular communications network, a fixed wirelessnetwork, a wireless local area network (LAN), a wireless wide areanetwork (WAN), a personal area network (PAN), intranet, metropolitanarea network, Internet network, or other similar type of networkenvironment or other suitable network system and includes equipment forreceiving and transmitting signals such as a cell tower 125 and a mobileswitching center (MSC) (not shown). A home location register (HLR) (notshown) interacts with the MSC to perform subscriber management and callswitching. The HLR, as is known in the art, includes a database ofcustomer (subscriber) information including customer profiles utilizedin mobile (cellular) networks. In another exemplary embodiment, network110 can be a circuit-switched network such as a standard public switchedtelephone network (PSTN). The first wireless device 105 can be incommunication with tower 125 through a variety of protocols 106including but not limited to, EDGE, GPRS, EDVO, Wi-Fi, etc.

System 100 can further include additional wireless devices 130, forcommunication with network 110 and the first wireless device 105. It isappreciated that the additional wireless devices 130 can be a variety ofexemplary wireless devices. In exemplary embodiments, the additionalwireless devices 130 can be a cellular telephone (e.g., a mobile phone,3G cell phone, Wi-Fi phone, Wi-Max phone), a personal computer, a laptopcomputer, a portable computing device (e.g., personal digitalassistant), a digital music player (e.g., MP3 player), etc. In exemplaryembodiments, as discussed further in the description below, the firstwireless device 105 and the additional wireless devices 130 can bepooled together to increase the bandwidth for one or more of thedevices. As such, in exemplary embodiments, the use of the pooledwireless devices 105, 130 for increased bandwidth forms a mesh networkwherein each wireless device 105, 130 is a node in system 100. Each nodecan be implemented for a respective increase in bandwidth. In exemplaryimplementations, each wireless device 105, 130 is in communication withthe network 110 independently of the other wireless devices 105, 130.Furthermore, the wireless devices 105, 130 can pool the respectivebandwidth of some or all of the other wireless devices 105, 130 toincrease bandwidth. Wireless devices 105, 130 may be in communicationamong themselves in a resulting ad-hoc network 107 with a variety ofcommunications protocols including but not limited to WLAN, etc.

The first wireless device 105 can include a wireless collectionbandwidth pooling application 140 for connection to the additionalwireless devices 130 for the implementation of pooling of wirelesscollection bandwidth. The first wireless device 105 can includeconnection software such as a wireless application protocol (WAP)browser or a hypertext markup language (HTML) browser when a wirelesscollection bandwidth pooling application resides on an applicationserver 135. Alternatively, the first wireless device 105 may include aJava client (e.g. J2ME, binary runtime environment for wireless (BREW),other similar client) or any other type of client known in the art whenportions of the wireless collection bandwidth pooling application resideon the first wireless device 105. Other portions of the wirelesscollection bandwidth pooling application 140 can reside on theapplication server 135. The application server 135 can in turn executeone or more computer programs to facilitate the wireless collectionbandwidth pooling application 140. The processing is described in moredetail below and may include having all of the wireless collectionbandwidth pooling applications residing on the server 135 or sharing theprocessing of the wireless collection bandwidth pooling applicationbetween the server 135 and the wireless devices 105, 130. As discussed,all or portions of the wireless collection bandwidth pooling application140 may be located on the server 135 such as a wireless markup language(WML) or wireless application protocol (WAP) server, an HTML server, aJava application server, or a BREW application server. In exemplaryembodiments, portions of the wireless collection bandwidth poolingapplication 140 may also be located on the wireless devices 105, 130.

In exemplary embodiments, the user of the first wireless device 105 mayrequest to download content from the content services provider server120 over the network 110. The content may be a game, a ring tone,images, a movie, etc. Although much downloaded content does not requirebandwidth that exceeds the capability of the first wireless device 105,some content, such as movies, may exceed the capability of the firstwireless device 105 due to an increased bandwidth requirement. As such,the transmission may not be able to continue due to the large bandwidthof the requested content. Therefore, the user can invoke the wirelesscollection bandwidth pooling application 140 so that the transmissioncan continue and/or can be accessed more efficiently. In exemplaryembodiments, the invocation of the wireless collection bandwidth poolingapplication 140 is performed automatically without further actionrequired of the user. Such wireless collection bandwidth pooling caninclude programming the wireless devices 105, 130 to create the ad-hocnetwork 107 based on bandwidth demand and availability.

In exemplary implementations, multiple users have agreed to share thebandwidth of their particular devices when in range and have furtheragreed that they would be able to use the bandwidth of other users'wireless devices when needed. In general, users of wireless devices,such as the wireless devices 105, 130, in the ad hoc network 107 may beunaware of other users' activities.

In exemplary embodiments, a respective wireless device 105, 130 caninclude a notification application 141, as depicted in FIG. 2, as partof the wireless collection bandwidth pooling application 140, whichalerts the user that the wireless device's bandwidth is in use fromanother user's wireless device. Such a notification can be implementedto allow a particular user to disallow the use of the additionalbandwidth in a case in which the particular user is in need of thebandwidth at a particular moment. For example, the wireless collectionbandwidth pooling application 140 on a given wireless device can monitorbandwidth pooling periodically and notify the particular user if theuser's bandwidth is being pooled. The application 140 can then furtherinquire whether or not the particular user wants to disallow thepooling. The user can then respond whether or not to disallow thepooling. If the user does disallow the pooling, then the particularwireless device associated with that user is removed as a node in the adhoc network 107. In other exemplary implementations, the notificationmay occur if the particular user wants to download content. In such aninstance, the user can be notified if any other device is using theuser's device in a pooling application, thereby leaving little or nobandwidth for the user's download. As such, the user can wait or chooseto be removed from the ad-hoc network 107. In other exemplaryimplementations, the wireless collection bandwidth pooling application140 can manage multiple downloads in order to balance the pooledbandwidth so that each user in the ad-hoc network 107 can take advantageof the pooled bandwidth without having to disallow a particular poolinginstance.

In exemplary embodiments, users in the ad-hoc network 107 can sharedownloaded content with each other. For example, multiple users, say agroup of friends, could pool their wireless devices 105, 130 together inan ad-hoc network 107 to download particular content that would beotherwise unavailable for download due to limited bandwidth of any ofany one wireless device 105, 130 individually. Once downloaded, thecontent could then be available to each of the wireless devices 105, 130used to download the content. For example, the first wireless device 105could pool the bandwidth of the additional wireless devices 130 todownload a movie. Once downloaded, the first wireless device 105 couldprovide the movie to the additional wireless devices 130 over the ad hocnetwork 107. Alternatively, the wireless collection bandwidth poolingapplication 140 on each wireless device 105, 130 could manage thedownload once the application 140 is aware that each device 105, 130 hasrequested a common download. In such an instance, the download cancommence sequentially for each device individually or simultaneously,with each device 105, 130 receiving content at once. It is appreciatedthat each of the wireless devices 105, 130 has each been authorized toreceive the content from the content server 120 and that unauthorizeddownloading of the content is disallowed by the wireless collectionbandwidth pooling application 140.

In general, it is appreciated that the wireless devices 105, 130 asnetwork nodes can change often with handoffs and handshakes occurringfrequently depending on the availability of wireless devices in the areathat allow use of pooled bandwidth, and further depending on individualpermissions of a given user to use the bandwidth, if applicable.

FIG. 2 depicts first wireless device 105 for providing pooling ofwireless collection bandwidth in exemplary embodiments. As discussedabove, the first wireless device 105 can include a wireless collectionbandwidth pooling application 140 for connection to the additionalwireless devices 130 for the implementation of pooling of wirelesscollection bandwidth. As discussed further below, the wirelesscollection bandwidth pooling application 140 can include one or moreprocesses in order to manage bandwidth for a download. Such processescan include, but are not limited to: processing the download 205;checking for available bandwidth 210 on the first wireless device 105;querying for available nodes 215 when the first wireless device 105 doesnot have enough bandwidth to complete the download; initiating handshakeprotocols 220 with available nodes for a download; appropriatingbandwidth 225 from the available nodes; balancing the appropriatedbandwidth 230 across the nodes; and aggregating the download to thepooled devices (nodes) 235 if the pooled devices have also requested thedownloaded content. The first wireless device 105 further includes thenotification application 141, which can include various notificationprocesses, including, but not limited to: informing the user that therequested download exceeds the available bandwidth 240 on the firstwireless device 105; informing the user that there are no nodesavailable for the download, and prompting the user whether or not theuser would like to cancel or delay the download 245; informing the userthat there are nodes available for the download 250, either in responseto a download request or as a follow-up to a delayed download request;and notifying the user that other devices are requesting the firstwireless device 105 to be pooled for a download 255 on another devicesuch as on one or more of the additional wireless devices 130. Thenotification process requesting that a device is requesting to pool 255the first wireless device 105 can include a prompt requesting that theuser either deny or approve the request. As further discussed above, thefirst wireless device 105 can include one or more connection softwareapplications 206 including but not limited to a WAP browser, HTMLbrowser, and a Java client.

Similarly, the application server 135 can include the wirelesscollection bandwidth pooling application 140, the notificationapplication 141 and the connection software applications. As discussed,the applications 140, 141, 206 can reside wholly on either of the firstwireless device 105 or the application server 135. Alternatively, theapplications 140, 141, 206 can reside partially on both of the firstwireless device 105 and the application server 135.

In further exemplary embodiments, once devices 105, 130 are pooled, theusers can further be prompted if they would like to share personalinformation with one another. In this way, users of devices that haveeither intentionally pooled their devices can decide to share personaldemographic information (e.g., name, phone number, and other contactinformation) with one another. Such information can be transferred amongthe devices via the ad-hoc network 107 or by other transfer protocolsdescribed herein.

FIG. 3 illustrates a method 300 for pooling of wireless collectionbandwidth in accordance with exemplary embodiments. At step 305, a usercan request a content download from the content server 120 over thenetwork 110. At step 310, the first wireless device 105 initiates thecontent download. At step 315, the first wireless device 105 determinesif there is adequate bandwidth to initiate and complete the download. Itis appreciated that the first wireless device 105 can make thisdetermination implementing the wireless collection bandwidth poolingapplication 140. If there is adequate bandwidth to support the contentdownload, then the content download commences until completion at step350. If, however, at step 315, the first wireless device 105 does nothave adequate bandwidth to support the content download, then the firstwireless device 105 queries for available nodes, or other existingad-hoc networks at step 320. In general, the first wireless device 105can query other local devices such as the additional wireless devices130, as discussed above. It is understood that in other exemplaryimplementations, other types of available and proximate devices can bequeried.

At step 321, the method 300 determines whether or not there are nodesavailable. If there are no nodes available at step 321, then at step322, the user can be prompted that there are no nodes available, andwhether or not the user wants to cancel the download or delay thedownload until there are nodes available. If the user cancels thedownload at step 323, then the flow ends. If the user delays thedownload at step 323, then the first wireless device 105 can continue toquery for available nodes at step 320. It is appreciated that thequerying of available nodes at step 320 and the subsequent steps cancontinue until available devices are detected. It is further appreciatedthat in other exemplary embodiments, the first wireless device 105 caneventually time-out if no available devices are detected within apre-determined time period.

If at step 321, the method 300 detects that nodes are available, then atstep 325, the first wireless device 105 and other available nodes,(e.g., the additional wireless devices 130, etc.) initiate connectionprotocols. In exemplary implementations, the connection protocols couldbe included in the wireless collection bandwidth pooling application140. For example, the first wireless device 105 can link to theadditional wireless devices 130 within proximity via a connection, suchas a Wi-Fi connection. The wireless devices 105, 130 could alternativelynetwork using IMS, Bluetooth, Wi-Max or other wireless standards forcommunication between wireless devices. In other exemplary embodiments,handshake protocols can be implemented among the devices 105, 130 toestablish communication. For example, Challenge-Handshake AuthenticationProtocol (CHAP) applies a three-way handshaking procedure. After thelink is established, the application sends a “challenge” message to theoriginator (e.g., the first wireless device 105). The originatorresponds with a value calculated using a one-way hash function. Theapplication (e.g., the wireless collection bandwidth pooling application140) checks the response against its own calculation of the expectedhash value. If the values match, the authentication is acknowledged;otherwise the connection can be terminated.

Once the communication protocols are initiated and communications havebeen established among the devices 105, 130, at step 330, the ad-hocmesh network 107 is established between the devices 105, 130 as acollectively pooled bandwidth network (i.e., ad-hoc network 107), andthe network 110. It is therefore appreciated that, with respect to thenetwork 110, the ad-hoc network 107 is established between the devices105, 130, effectively as a single collective device with collectivebandwidth via the wireless collection bandwidth pooling application 140.It is further appreciated that the devices 105, 130 may come and go intoand out of the collective device because different users may come and gointo and out of the vicinity in which the ad-hoc network 107 can beformed. In addition, devices 105, 130 may or may not receivenotifications of being added to a collective pool depending on thesettings on the users' devices 105, 130 as discussed above.

Regardless of the manner in which the additional wireless devices 130are collectively pooled with the first wireless device 105, the firstwireless device 105 then appropriates the necessary pooled bandwidth tofulfill the download request at step 335. It is appreciated that inother exemplary implementations, the first wireless device 105 via thewireless collection bandwidth pooling application 140 can constantlyquery for available devices in proximity in anticipation of a contentdownload, but without actually having requested a content download.Therefore, steps 320, 325 and 330 can be performed constantly inanticipation of a content download and the ad-hoc network 107 can beconstantly established upon the request for a content download from theuser.

Regardless of the manner in which the ad-hoc network 107 is established,as the content download proceeds, the content download is balancedacross the network nodes (i.e., the wireless devices 105, 130) as neededat step 340. It is therefore appreciated that the content downloadbalancing can be dynamic if different devices are coming into and out ofthe ad-hoc network 107. For example, the wireless collection bandwidthpooling application 140 can determine which of the devices 105, 130receive which packets and in what order. In addition, the wirelesscollection bandwidth pooling application 140 can further determine whattypes of re-balancing of the packets can occur in the event that one ormore of the additional wireless devices 130 leaves the proximate area ofthe first wireless device 105 necessary to maintain the ad-hoc network107. As such, the wireless collection bandwidth pooling application 140further determines how the packets are to be assembled in the firstwireless device 105 upon completion of the content download. Therefore,in exemplary embodiments, since the pooled devices 105, 130 areeffectively a single device and since the wireless collection bandwidthpooling application 140 manages how the packets are received, thecontent server 120 can send the content over the network 110 as if thecontent server 120 were sending the content to a single wireless device.

At step 345, the content download is aggregated to the first wirelessdevice 105 that is requesting the download for use or for storage. Atstep 350 the content download commences as managed by the wirelesscollection bandwidth pooling application 140 until completion of thecontent download. It is therefore appreciated that the wirelesscollection bandwidth pooling application 140 manages the assembly of thepackets received in the first wireless device 105 and those packetsreceived in the additional wireless devices 130 in the first wirelessdevice 105. As discussed above, if the additional wireless devices 130indicate that they also desired to receive the download, the downloadcan be further aggregated into the first wireless device 105 requestingthe download. The wireless collection bandwidth pooling application 140can manage how the packets are assembled among the devices thatrequested the content download. As such, in an exemplary implementation,if one of the additional wireless devices 130 shares in the download, anotification can be sent to the content server 120 for appropriatebilling.

As described above, the exemplary embodiments can be in the form ofcomputer-implemented processes and apparatuses for practicing thoseprocesses. The exemplary embodiments can also be in the form of computerprogram code containing instructions embodied in tangible media, such asfloppy diskettes, CD ROMs, hard drives, or any other computer-readablestorage medium, wherein, when the computer program code is loaded intoand executed by a computer, the computer becomes an apparatus forpracticing the exemplary embodiments. The exemplary embodiments can alsobe in the form of computer program code, for example, whether stored ina storage medium, loaded into and/or executed by a computer, ortransmitted over some transmission medium, loaded into and/or executedby a computer, or transmitted over some transmission medium, such asover electrical wiring or cabling, through fiber optics, or viaelectromagnetic radiation, wherein, when the computer program code isloaded into an executed by a computer, the computer becomes an apparatusfor practicing the exemplary embodiments. When implemented on ageneral-purpose microprocessor, the computer program code segmentsconfigure the microprocessor to create specific logic circuits.

While the invention has been described with reference to exemplaryembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted forelements thereof without departing from the scope of the invention. Inaddition, many modifications may be made to adapt a particular situationor material to the teachings of the invention without departing from theessential scope thereof. Therefore, it is intended that the inventionnot be limited to the particular embodiments disclosed for carrying outthis invention, but that the invention will include all embodimentsfalling within the scope of the claims. Moreover, the use of the termsfirst, second, etc. do not denote any order or importance, but ratherthe terms first, second, etc. are used to distinguish one element fromanother. Furthermore, the use of the terms a, an, etc. do not denote alimitation of quantity, but rather denote the presence of at least oneof the referenced item.

What is claimed is:
 1. A method, comprising: receiving, at a server froma first wireless device, a request to download content from a contentserver, the first wireless device associated with a first bandwidth;determining, by the server, that the first bandwidth of the firstwireless device is inadequate for supporting download of the contentfrom the content server; in response to determining that the firstbandwidth is inadequate, querying, by the server, for additionalwireless devices within a communication range of the first wirelessdevice; initiating, by the server, communication between the firstwireless device and a second wireless device of the additional wirelessdevices to establish an ad-hoc network, the second wireless deviceassociated with a second bandwidth; providing, by the server to thesecond wireless device, a notification that the second wireless deviceis being requested to be pooled for a download; pooling, by the server,at least a portion of the first bandwidth of the first wireless deviceand at least a portion of the second bandwidth of the second wirelessdevice to form a pooled bandwidth; and appropriating, by the server, atleast a portion of the pooled bandwidth to fulfill the request, from thefirst wireless device, to download the content from the content server,wherein the at least a portion of the pooled bandwidth is adequate forsupporting download of the content from the content server.
 2. Themethod of claim 1, further comprising initiating download of the contentfrom the content server, wherein the content is transferred over thepooled bandwidth, and wherein the pooled bandwidth dynamically changesin response to the second wireless device leaving the communicationrange of the first wireless device and a third wireless device comingwithin the communication range of the first wireless device.
 3. Themethod of claim 1, wherein the operations further comprise initiatingdownload of the content from the content server and wherein a firstportion of the content is downloaded to the first wireless device and asecond portion of the content is downloaded to the second wirelessdevice.
 4. The method of claim 3, further comprising assembling, at thefirst wireless device that requested to download the content, the secondportion of the content downloaded to the second wireless device with thefirst portion of the content downloaded to the first wireless device. 5.The method of claim 4, further comprising after assembling the secondportion of the content and the first portion of the content at the firstwireless device, providing the content from the first wireless device tothe second wireless device.
 6. The method of claim 1, further comprisingdetermining how to rebalance download of the content if the secondwireless device exits the communication range of the first wirelessdevice.
 7. The method of claim 1, further comprising providing an optionto the second wireless device to approve or deny pooling of the secondwireless device for the download.
 8. The method of claim 1, furthercomprising providing a prompt to the first wireless device and thesecond wireless device to share personal information between the firstwireless device and the second wireless device.
 9. The method of claim8, further comprising providing a notification to the content serverthat the content has been provided to the second wireless device.
 10. Anon-transitory computer-readable medium storing computer-executableinstructions that, when executed by a server comprising a processor,cause the processor to perform operations comprising: receiving, from afirst wireless device, a request to download content from a contentserver, the first wireless device associated with a first bandwidth;determining that the first bandwidth of the first wireless device isinadequate for supporting download of the content from the contentserver; in response to determining that the first bandwidth isinadequate, querying for additional wireless devices within acommunication range of the first wireless device; initiatingcommunication between the first wireless device and a second wirelessdevice of the additional wireless devices to establish an ad-hocnetwork, the second wireless device associated with a second bandwidth;providing, to the second wireless device, a notification that the secondwireless device is being requested to be pooled for a download; poolingat least a portion of the first bandwidth of the first wireless deviceand at least a portion of the second bandwidth of the second wirelessdevice to form a pooled bandwidth; and appropriating at least a portionof the pooled bandwidth to fulfill the request, from the first wirelessdevice, to download the content from the content server, wherein the atleast a portion of the pooled bandwidth is adequate for supportingdownload of the content from the content server.
 11. The non-transitorycomputer-readable medium of claim 10, wherein the operations furthercomprise initiating download of the content from the content server,wherein the content is transferred over the pooled bandwidth, andwherein the pooled bandwidth dynamically changes in response to thesecond wireless device leaving the communication range of the firstwireless device and a third wireless device coming within thecommunication range of the first wireless device.
 12. The non-transitorycomputer-readable medium of claim 10, wherein the operations furthercomprise initiating download of the content from the content server andwherein a first portion of the content is downloaded to the firstwireless device and a second portion of the content is downloaded to thesecond wireless device.
 13. The non-transitory computer-readable mediumof claim 12, wherein the operations further comprise assembling, at thefirst wireless device that requested to download the content, the secondportion of the content downloaded to the second wireless device with thefirst portion of the content downloaded to the first wireless device.14. The non-transitory computer-readable medium of claim 13, wherein theoperations further comprise: after assembling the second portion of thecontent and the first portion of the content at the first wirelessdevice, providing the content from the first wireless device to thesecond wireless device; and providing a notification to the contentserver that the content has been provided to the second wireless device.15. The non-transitory computer-readable medium of claim 10, wherein theoperations further comprise determining how to rebalance download of thecontent if the second wireless device exits the communication range ofthe first wireless device.
 16. The non-transitory computer-readablemedium of claim 10, wherein the operations further comprise providing anoption to the second wireless device to approve or deny pooling of thesecond wireless device for the download.
 17. The non-transitorycomputer-readable medium of claim 10, wherein the operations furthercomprise providing a prompt to the first wireless device and the secondwireless device to share personal information between the first wirelessdevice and the second wireless device.
 18. A first wireless device,comprising: a processor; and a computer-readable storage medium storinginstructions that, when executed by the processor, cause the processorto perform operations comprising: receiving a request to downloadcontent from a content server, the first wireless device associated witha first bandwidth, determining that the first bandwidth of the firstwireless device is inadequate for supporting download of the contentfrom the content server, in response to determining that the firstbandwidth is inadequate, querying for additional wireless devices withina communication range of the first wireless device; initiatingcommunication between the first wireless device and a second wirelessdevice of the additional wireless devices to establish an ad-hocnetwork, the second wireless device associated with a second bandwidth,pooling at least a portion of the first bandwidth of the first wirelessdevice and at least a portion of the second bandwidth of the secondwireless device to form a pooled bandwidth, appropriating at least aportion of the pooled bandwidth to fulfill the request, received at thefirst wireless device, to download the content from the content server,wherein the at least a portion of the pooled bandwidth is adequate forsupporting download of the content from the content server, andproviding a notification that the first wireless device is beingrequested to be pooled for a download.
 19. The first wireless device ofclaim 18, wherein the operations further comprise providing an option tothe first wireless device to approve or deny pooling of the firstwireless device for the download.
 20. The first wireless device of claim18, wherein the operations further comprise determining how to rebalancedownload of the content if the second wireless device exits thecommunication range of the first wireless device.